﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using WCFRequerimientos.Dominio;
using System.Data.SqlClient;

namespace WCFRequerimientos.Persistencia
{
    public class GREstadoReqDAO
    {

        public List<GREstadoReq> ListarEstados()
        {

            SqlDataReader rdr = null;
            SqlConnection con = null;
            SqlCommand cmd = null;
            List<GREstadoReq> ListaEstados = null;
            GREstadoReq EstadoRequerimiento = null;

            try
            {
                con = new SqlConnection(ConexionUtil.ObtenerCadena());
                con.Open();
                cmd = new SqlCommand("GREstadoReq_Listar", con);
                cmd.CommandType = CommandType.StoredProcedure;
                rdr = cmd.ExecuteReader();

                if (rdr.HasRows)
                {
                    ListaEstados = new List<GREstadoReq>();
                    while (rdr.Read())
                    {
                        EstadoRequerimiento = new GREstadoReq();
                        EstadoRequerimiento.iCodEstReq = Convert.ToInt32(rdr["iCodEstReq"].ToString());
                        EstadoRequerimiento.vNomEstReq = rdr["vNomEstReq"].ToString();
                        EstadoRequerimiento.iCodUsu = Convert.ToInt32(rdr["iCodUsu"].ToString());
                        EstadoRequerimiento.vNomTer = rdr["vNomTer"].ToString();
                        EstadoRequerimiento.dtFecAct = Convert.ToDateTime(rdr["dtFecAct"].ToString());
                        ListaEstados.Add(EstadoRequerimiento);
                    }
                }
 
            }
            catch
            {
                ListaEstados = null;
            }
            finally
            {
                if (rdr != null)
                    rdr.Close();

                if (con.State == ConnectionState.Open)
                    con.Close();
            }
            return ListaEstados;
        }

        public GREstadoReq ObtenerDatosEstado(Int32 intCodigoEstado)
        {

            SqlDataReader rdr = null;
            SqlConnection con = null;
            SqlCommand cmd = null;
            GREstadoReq EstadoRequerimiento = null;

            try
            {
                con = new SqlConnection(ConexionUtil.ObtenerCadena());
                con.Open();
                cmd = new SqlCommand("GREstadoReq_Obtener", con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add("@iCodEstReq", SqlDbType.Int).Value = intCodigoEstado;
                rdr = cmd.ExecuteReader();
                if (rdr.HasRows)
                {
                    while (rdr.Read())
                    {
                        EstadoRequerimiento = new GREstadoReq();
                        EstadoRequerimiento.iCodEstReq = Convert.ToInt32(rdr["iCodEstReq"].ToString());
                        EstadoRequerimiento.vNomEstReq = rdr["vNomEstReq"].ToString();
                        EstadoRequerimiento.iCodUsu = Convert.ToInt32(rdr["iCodUsu"].ToString());
                        EstadoRequerimiento.vNomTer = rdr["vNomTer"].ToString();
                        EstadoRequerimiento.dtFecAct = Convert.ToDateTime(rdr["dtFecAct"].ToString());
                    }
                }
            }
            catch
            {
                EstadoRequerimiento = null;
            }
            finally
            {
                if (rdr != null)
                    rdr.Close();

                if (con.State == ConnectionState.Open)
                    con.Close();
            }
            return EstadoRequerimiento;
        }

    }
}